package design.pattern.策略模式;

/**
 * 环境角色类
 */
public class Context {

    //持有一个具体的策略对象
    private CashSuper cashSuper;

    /**
     * 构造函数-传入一个具体的策略对象
     * @param type 具体的策略枚举说明
     */
    Context(CashTypeEnum type){
        this.cashSuper = CashFactory.getInstance().getCash(type);
        System.out.println(this.cashSuper);
    }

    /**
     * 调用策略方法
     * @param money
     * @return
     */
    public double getResult(double money){
        return cashSuper.acceptCash(money);
    }
}
